Pre-Virtualization Compiler Enhancements
نویسنده
چکیده
One problem common to all virtualization techniques is the efficient injection of emulation code into the guest operating systems (guest OSs). Emulation is needed to limit the effects of virtualization sensitive instructions to the appropriate virtual machine. For instance, privilege mode changes, processor halting or resetting, and device accesses must be redirected to the executing virtual machine rather than affect the underlying physical machine, as the latter is probably shared among multiple virtual machines. The emulation code will—in many cases—overwrite the contents of general purpose registers that would remain unmodified by the emulated sensitive instruction. These additional sideeffects must carefully be hidden from the guest OS to guarantee its correct execution. The pre-virtualization approach uses a load-time rewriter to replace sensitive instructions with a sequence of code that saves all caller-saved registers, calls appropriate emulation code, and restores the saved registers afterwards. In many cases, this approach unnecessarily saves many registers whose content is afterwards discarded, thus increasing the virtualization overhead. In this thesis we propose to use additional context-information for each sensitive instruction to facilitate generating more efficient replacement code: Live registers enable us to identify and discard irrelevant registers instead of preserving them across the emulation. Furthermore, literally known register content can help in statically selecting more specific emulation code, especially for device I/O. We also propose to use static rewriting techniques, such as register reallocation and rescheduling, to reduce the number of live caller-saved registers at the sensitive instructions. All presented techniques will be integrated into an advanced rewriting system, which automatically extracts the required information from the pre-virtualized guest OS binary, performs the supporting static rewriting, and implements efficient load-time rewriting routines. Our implementation for IA-32 shows that the use of context-information reduces the number of preserved registers during the emulation of sensitive instructions by more than 40 % for current Linux kernels.
منابع مشابه
Advanced virtualization techniques for FAUmachine
This paper presents advanced virtualization techniques used to implement the virtual PC FAUmachine. We created a just-in-time compiler that can transform kernel mode code into code suitable for direct execution within a user mode simulator. This approach allows the efficient virtualization of standard PC hardware. To improve the performance of our simulator, we developed a small host kernel mod...
متن کاملDesigning Efficient Security Services Infrastructure for Virtualization Oriented Architectures*
The concept of virtualization in information technology dates back to the development of programming language compilers that were designed to virtualize the object code. Later virtualization emerged as cutting-edge technology not only for cost reduction of IT operations and support but also for ultimate simplicity, flexibility and agility of the underlying infrastructures. Server virtualization...
متن کاملAutomating Pre-Virtualization for Memory Objects
Virtualization is used to construct several virtual machines on a physical machine for high utilization and other benefits. The virtual machines should run independently within their own domain without disturbing the others’ execution. In order to achieve this purpose, two things are considered: virtualization-sensitive instruction and sensitive memory operation. Since the virtualization-sensit...
متن کاملCombining Processor Virtualization and Split Compilation for Heterogeneous Multicore Embedded Systems
Complex embedded systems have always been heterogeneous multicore systems. Because of the tight constraints on power, performance and cost, this situation is not likely to change any time soon. As a result, the software environments required to program those systems have become very complex too. We propose to apply instruction set virtualization and just-in-time compilation techniques to progra...
متن کاملVirtualization Services: Accelerated I/O Support in Multi-Core Systems
Virtualization services permit I/O subsystems and peripheral devices to be virtualized by placing select functionality on specialized cores and/or on cores situated ‘closer’ to devices. The approach is used to implement self-virtualized I/O (SVIO), which off-loads certain virtualization functionality onto the cores available on the I/O device, accelerating I/O functions, efficiently using key p...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2006